package io;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

/**
 * 对象流
 * java.io.ObjectOutputStream和ObjectInputSteam
 * 对象流是一对高级流，在流链接中完成对象与字节的转换，即：对象序列化操作
 * 有了它们我们可以轻松读写任何java对象
 */
public class OOSDemo {
    public static void main(String[] args) throws IOException {
        String name = "苍老师";
        int age = 18;
        int salary = 22;
        String gender = "女";
        String[] otherInfo = {"是一名演员"};
        Person p = new Person(name,age,salary,gender,otherInfo);
        System.out.println(p);

        //将该Person对象写入文件Person.obj中
        FileOutputStream fos  = new FileOutputStream("./person.obj");
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        /*
          对象输出流提供的独有方法：writeObject（Object obj）
          该方法会进行对象序列化，冰将序列化后的字节通过其连接的流写出。
         */
        oos.writeObject(p);
        System.out.println("写出完毕");
        oos.close();

    }
}
